package com.example.tests;

import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;

import java.util.Random;
import org.testng.annotations.Test;

import com.example.utils.SortedListOf;

public class GroupModificationTests extends TestBase {
	
	@Test(dataProvider = "randomValidGroupGenerator")
	public void modifySomeGroup(GroupData group){
		// save old state
		SortedListOf<GroupData> oldList = app.getModel().getGroups();
		
		Random rnd 	= new Random();
		int indx	= rnd.nextInt(oldList.size() - 1);
		// action
		app.getGroupHelper().modifyGroup(indx, group);

		// save new state
		SortedListOf<GroupData> newList = app.getModel().getGroups();
		
		// compare state
		assertThat(newList, equalTo(oldList.without(indx).withAdded(group)));
	}

}
